Distributed ledger systems (DLSs), which can also be referred to as consensus networks, and/or blockchain networks, enable participating entities to securely, and immutably store data. DLSs are commonly referred to as blockchain networks without referencing any particular use case. Example types of blockchain networks can include public blockchain networks, private blockchain networks, and consortium blockchain networks. A public blockchain network is open for all entities to use the DLS, and participate in the consensus process. A private blockchain network is provided for particular entity, which centrally controls read and write permissions. A consortium blockchain network is provided for a select group of entities, which control the consensus process, and includes an access control layer.
Hash trees can be used to blockchain networks to store information. For example, the world-state of a blockchain network (e.g., the state of nodes (accounts) in the blockchain network) can be stored in a hash tree. An example of a hash tree includes a world-state Merkle Patricia Trie (MPT), which maintains the world-state of all nodes (accounts) within the blockchain network. As blockchain networks grow, the world-state information correspondingly grows resulting in a complex, data-intensive hash tree.
Not all nodes within the blockchain network need maintain the world-state of the blockchain. For example, so-called consensus nodes (full clients), which participate in adding transactions to a blockchain within the blockchain network, maintain world-state hash trees to enable participation in the consensus process. Other nodes (light clients) that only conduct transactions within the blockchain network need not maintain, or even need to be aware of the world-state. Such nodes, however, should be aware of their own state, and the state of other nodes they transact with within the blockchain (e.g., partial-state). Given the size, and complexity of world-state hash trees, and resource limitations of devices used by light clients, a resource-, and bandwidth-efficient data structure, and process for updating the data structure for maintaining a partial-state of the blockchain network is needed.